package com.locky.servlets;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import gemsa.outils.GestionDroit;

/**
 * Classe ServletPageFixe
 * @author Projet Dev Groupe 33
 * @version 1.0 Prefinale
 */

@SuppressWarnings("serial")
public class ServletPageFixe extends HttpServlet
{
	// Attributs
	private DataSource datasource;
	private GestionDroit gestionDroit=null;
	
	// Traitements
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
	{		
		// Initialisation de la gestion des droits
		gestionDroit=new GestionDroit(request);
	
		// R�cup�rer la datasource du context de la servlet
		datasource=(DataSource)getServletContext().getAttribute("datasource");
		
		// Action a r�aliser
		String action=(String)request.getParameter("action");
		
		// Action par d�faut (index utilisateur)
		if(action==null || action.equalsIgnoreCase(""))
		{
			action="index";
		}
		
		// Affiche la page d'index
		if(action.equals("index"))
		{	
			index(request, response);
		}	
		
		// Page d'index administrateur
		if(action.equals("admin"))
		{	
			// On autorise uniquement les administrateurs
			if(gestionDroit.estAutorise(true,false,false))
			{
				admin(request, response);
			}
			else
			{
				getServletContext().getRequestDispatcher("/pageFixe?action=erreur&erreurs=Vous n'�tes pas autoris� � afficher cette page!!").forward(request, response);
			}
		}	
		// Page des informations diverses
		if(action.equals("info"))
		{	
			info(request, response);
		}	
		// Page des conditions générales d'utilisation
		if(action.equals("cg"))
		{	
			cg(request, response);
		}
		// Page de contact
		if(action.equals("contact"))
		{	
			contact(request, response);
		}	
		// Page d'erreurs
		if(action.equals("erreur"))
		{	
			erreur(request, response);
		}	
	
		// Vidage du datasource
		this.datasource=null;
	}
	
	
	
	// Page d'index
	private void index(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{

		// On renvoie  � la vue les messages d'erreurs et ou de succ�s pass�s � cette servlet lors de la cr�ation d'un nouveau compte
		request.setAttribute("succes",(String)request.getParameter("succes"));
		request.setAttribute("erreurs",(String)request.getParameter("erreurs"));
		
		// Redirection vers la page d'index utilisateur
		getServletContext().getRequestDispatcher("/vues/utilisateurs/index.jsp").forward(request, response);
	}
	
	
	// Page d'accueil de l'administrateur
	private void admin(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		// Redirection vers la page d'index administrateur
		getServletContext().getRequestDispatcher("/vues/administrateurs/index.jsp").forward(request, response);
	}

	// Page des conditions générales d'utilisation
	private void cg(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		// Redirection vers la cg
		getServletContext().getRequestDispatcher("/vues/utilisateurs/cg.jsp").forward(request, response);
	}
	
	// Page des informations diverses
	private void info(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		// Redirection vers les infos
		getServletContext().getRequestDispatcher("/vues/utilisateurs/info.jsp").forward(request, response);
	}
	
	// Page d'erreurs
	private void erreur(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		// Redirection vers la page d'erreurs
		request.setAttribute("erreurs",(String)request.getParameter("erreurs"));
		getServletContext().getRequestDispatcher("/vues/erreurs/erreur.jsp").forward(request, response);
	}
	
	// Page de contacts
	private void contact(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		// Redirection vers la page de contacts
		getServletContext().getRequestDispatcher("/vues/utilisateurs/contact.jsp").forward(request, response);
	}
	
	
	
	
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
	{
		doGet(request, response);
	}
	
}
